﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kaidou.Model
{
    public class ReportSearchModel
    {
        private string report_date_str;

	    private string report_date_end;

	    private DateTime report_date;

	    private string union_code;

	    private int branch_code = -1;

	    private string office_name;

	    private string office_kana;

	    private string branch_name;

	    private string branch_kana;

	    private string seal_str_no;

	    private string seal_end_no;

	    private int hall_seqno;

	    private string hall_name;

	    private int hall_pref_code;

	    private string hall_city;

	    private string hall_address;

	    private string hall_tel;

	    private string trader_reg_no1;

	    private string trader_reg_no2;

	    private string trader_name;

	    private string trader_kana;

	    private string chief_no1;

	    private string chief_no2;

	    private string chief_name;

	    private string chief_kana;

	    private string report_sts;

	    private string report_clss;

	    private string report_no;

	    private string machine_name;

	    private DateTime est_date;
        
        private string est_date_str;
        
        private string est_date_end;

	    private int machine_qty;

	    private string fax_error_flg;

	    private string dup_error_flg;

	    private string dif_report_flg;

	    private string machine_clss;

	    private string report_err;

	    private int page_num;

	    private string user_clss;
        
        private int machine_total_qty;

        private bool cansel = false;
        
	    private bool denialflag = true;

        private bool oldtime = false;

	    public ReportSearchModel() {
	    }

        public void setOldtime(bool flag)
        {
            oldtime = flag;
        }

        public bool getOldtime()
        {
            return oldtime;
        }

        public void setCansel(bool cansel)
        {
            this.cansel = cansel;

        }

        public bool getCansel()
        {
            return this.cansel;
        }

	    public void setReport_date_str(string report_date_str) {
		    this.report_date_str = report_date_str;
	    }

	    public string getReport_date_str() {
		    return report_date_str;
	    }

	    public void setReport_date_end(string report_date_end) {
		    this.report_date_end = report_date_end;
	    }

	    public string getReport_date_end() {
		    return report_date_end;
	    }

	    public void setReport_date(DateTime report_date) {
		    this.report_date = report_date;
	    }

	    public DateTime getReport_date() {
		    return report_date;
	    }

	    /**
	     * 報告組合員コード をセットします。
	     *
	     * @param union_code 報告組合員コード
	     */

	    public void setUnion_code(string union_code) {
		    this.union_code = union_code;
	    }

	    /**
	     * 報告組合員コード を取得します。
	     *
	     * @return string 報告組合員コード
	     */
	    public string getUnion_code() {
		    return this.union_code;
	    }

	    /**
	     * 支店名を取得する。
	     * 支店コードが000の場合には"本店"を、それ以外の場合にはoffice_nameを返します。
	     * @return string 支店名
	     */
	    public string getBranch_office_name() {
		    if (getBranch_code() == 0) {
			    return "本店";
		    } else {
			    return getBranch_name();
		    }
	    }

	    /**
	     * 名称を設定する
	     * @param string 名称
	     */
	    public void setOffice_name(string office_name) {
		    this.office_name = office_name;
	    }

	    /**
	     * 名称を取得する
	     * @return string 名称
	     */
	    public string getOffice_name() {
		    return this.office_name;
	    }

	    /**
	     * 名称(カナ)を設定する
	     * @param string 名称(カナ)
	     */
	    public void setOffice_kana(string office_kana) {
		    this.office_kana = office_kana;
	    }

	    /**
	     * 名称(カナ)を取得する
	     * @return string 名称(カナ)
	     */
	    public string getOffice_kana() {
		    return this.office_kana;
	    }

	    /**
	     * 支店名称を設定する
	     * @param string branch_name
	     */
	    public void setBranch_name(string branch_name) {
		    this.branch_name = branch_name;
	    }

	    /**
	     * 支店名称を取得する
	     * @return string branch_name
	     */
	    public string getBranch_name() {
		    return this.branch_name;
	    }

	    /**
	     * 支店名称(カナ)を設定する
	     * @param string branch_kana
	     */
	    public void setBranch_kana(string branch_kana) {
		    this.branch_kana = branch_kana;
	    }

	    /**
	     * 支店名称を(カナ)取得する
	     * @return string branch_kana
	     */
	    public string getBranch_kana() {
		    return this.branch_kana;
	    }

	    /**
	     * 支店コードを設定する
	     * @param int 支店コード
	     */
	    public void setBranch_code(int branch_code) {
		    this.branch_code = branch_code;
	    }

	    /**
	     * 支店コードを取得する
	     * @return int 支店コード
	     */
	    public int getBranch_code() {
		    return this.branch_code;
	    }

	    /**
	     * 確認シール番号（開始）をセットします。
	     *
	     * @param seal_str_no 確認シール番号（開始）
	     */
	    public void setSeal_str_no(string seal_str_no) {
		    this.seal_str_no = seal_str_no;
	    }

	    /**
	     * 確認シール番号（開始） を取得します。
	     *
	     * @return string 確認シール番号（開始）
	     */
	    public string getSeal_str_no() {
		    return this.seal_str_no;
	    }

	    /**
	     * 確認シール番号（開始） を取得します。
	     *
	     * @return int 確認シール番号（開始）
	     */
	    public int getSeal_str_noAsInteger() {
		    int ret = 0;

		    try {
			    ret = int.Parse(this.seal_str_no);
		    } catch (Exception e) {
		    }

		    return ret;
	    }

	    /**
	     * 確認シール番号(終了) をセットします。
	     *
	     * @param seal_end_no 確認シール番号(終了)
	     */
	    public void setSeal_end_no(string seal_end_no) {
		    this.seal_end_no = seal_end_no;
	    }

	    /**
	     * 確認シール番号(終了) を取得します。
	     *
	     * @return string 確認シール番号(終了)
	     */
	    public string getSeal_end_no() {
		    return this.seal_end_no;
	    }

	    /**
	     * 確認シール番号(終了) を取得します。
	     *
	     * @return int 確認シール番号(終了)
	     */
	    public int getSeal_end_noAsInteger() {
		    int ret = 0;

		    try {
			    ret = int.Parse(this.seal_end_no);
		    } catch (Exception e) {
		    }

		    return ret;
	    }

	    /**
	     * 新台中古台区分 をセットします。
	     *
	     * @param machine_clss 新台中古台区分
	     */
	    public void setMachine_clss(string machine_clss) {
		    this.machine_clss = machine_clss;
	    }

	    /**
	     * 新台中古台区分 を取得します。
	     *
	     * @return string 新台中古台区分
	     */
	    public string getMachine_clss() {
		    return this.machine_clss;
	    }

	    /**
	     * 設置ホールSEQコード をセットします。
	     *
	     * @param hall_seqno 設置ホールSEQコード
	     */
	    public void setHall_seqno(int hall_seqno) {
		    this.hall_seqno = hall_seqno;
	    }

	    /**
	     * 設置ホールSEQコード を取得します。
	     *
	     * @return int 設置ホールSEQコード
	     */
	    public int getHall_seqno() {
		    return this.hall_seqno;
	    }

	    /**
	     * 設置遊技機型式名 をセットします。
	     *
	     * @param machine_name 設置遊技機型式名
	     */
	    public void setMachine_name(string machine_name) {
		    this.machine_name = machine_name;
	    }

	    /**
	     * 設置遊技機型式名 を取得します。
	     *
	     * @return string 設置遊技機型式名
	     */
	    public string getMachine_name() {
		    return this.machine_name;
	    }

	    /**
	     * 設置台数 をセットします。
	     *
	     * @param machine_qty 設置台数
	     */
	    public void setMachine_qty(int machine_qty) {
		    this.machine_qty = machine_qty;
	    }

	    /**
	     * 設置台数 を取得します。
	     *
	     * @return int 設置台数
	     */
	    public int getMachine_qty() {
		    return this.machine_qty;
	    }

	    /**
	     * 設置日 をセットします。
	     *
	     * @param est_date 設置日
	     */
	    public void setEst_date(DateTime est_date) {
		    this.est_date = est_date;
	    }

	    public DateTime getEst_date() {
		    return this.est_date;
	    }

	    /**
         * 
         * @param report_date_str
	     */
        public void setEst_date_str(string est_date_str) {
            this.est_date_str = est_date_str;
        }

        public string getEst_date_str() {
            return est_date_str;
        }

        public void setEst_date_end(string est_date_end) {
            this.est_date_end = est_date_end;
        }

        public string getEst_date_end() {
            return est_date_end;
        }

        
        
        
        /**
	     * 販売業者登録証番号 をセットします。
	     *
	     * @param trader_reg_no 販売業者登録証番号
	     */
	    public void setTrader_reg_no(string trader_reg_no1, string trader_reg_no2) {
		    this.trader_reg_no1 = trader_reg_no1;
		    this.trader_reg_no2 = trader_reg_no2;
	    }

	    /**
	     * 販売業者登録証番号(上2桁) をセットします。
	     *
	     * @param trader_reg_no1 販売業者登録証番号
	     */
	    public void setTrader_reg_no1(string trader_reg_no1) {
		    this.trader_reg_no1 = trader_reg_no1;
	    }

	    /**
	     * 販売業者登録証番号(下5桁) をセットします。
	     *
	     * @param trader_reg_no2 販売業者登録証番号
	     */
	    public void setTrader_reg_no2(string trader_reg_no2) {
		    this.trader_reg_no2 = trader_reg_no2;
	    }

	    /**
	     * 販売業者登録証番号 をセットします。
	     *
	     * @param trader_reg_no 販売業者登録証番号
	     */
	    public void setTrader_reg_no(string trader_reg_no) {
		    try {
			    this.trader_reg_no1 = trader_reg_no.Substring(0, 2);
		    } catch (Exception e) {
		    }

		    try {
                this.trader_reg_no2 = trader_reg_no.Substring(2, 5);
		    } catch (Exception e) {
		    }
	    }

	    /**
	     * 販売業者登録証番号 を取得します。
	     *
	     * @return string 販売業者登録証番号
	     */
	    public string getTrader_reg_no() {
		    if (isEmpty(getTrader_reg_no1()) || isEmpty(getTrader_reg_no2())) {
			    return null;
		    } else {
			    return this.trader_reg_no1 + "-" + this.trader_reg_no2;
		    }
	    }

	    public string getTrader_reg_no1() {
		    return this.trader_reg_no1;
	    }

	    public string getTrader_reg_no2() {
		    return this.trader_reg_no2;
	    }

	    /**
	     * MST_TraderManagerから照会したあたいをセットします。
	     *
	     * @param trader_reg_no 販売業者名
	     */
	    public void setTrader_name(string trader_name) {
		    this.trader_name = trader_name;
	    }

	    public string getTrader_name() {
		    return trader_name;
	    }

	    /**
	     * MST_TraderManagerから照会したあたいをセットします。
	     *
	     * @param trader_kana 販売業者名（カナ）
	     */
	    public void setTrader_kana(string trader_kana) {
		    this.trader_kana = trader_kana;
	    }

	    public string getTrader_kana() {
		    return trader_kana;
	    }

	    /**
	     * 取扱主任者証番号 をセットします。
	     *
	     * @param chief_no 取扱主任者証番号
	     */
	    public void setChief_no(string chief_no) {
		    try {
			    this.chief_no1 = chief_no.Substring(0, 2);
		    } catch (Exception e) {
		    }

		    try {
			    this.chief_no2 = chief_no.Substring(2, 7);
		    } catch (Exception e) {
		    }
	    }

	    public void setChief_no(string chief_no1, string chief_no2) {
		    this.chief_no1 = chief_no1;
		    this.chief_no2 = chief_no2;
	    }

	    public void setChief_no1(string chief_no1) {
		    this.chief_no1 = chief_no1;
	    }

	    public void setChief_no2(string chief_no2) {
		    this.chief_no2 = chief_no2;
	    }

	    /**
	     * 取扱主任者証番号 を取得します。
	     *
	     * @return string 取扱主任者証番号
	     */
	    public string getChief_no() {
		    if (isEmpty(getChief_no1()) || isEmpty(getChief_no2())) {
			    return null;
		    } else {
			    // 2003/11/05 T.Sakai add 「取扱主任者証番号による検索不可能」エラーを解消
			    // 「取扱主任者証番号」のハイフンが抜けていた
			    return this.chief_no1 + "-" + this.chief_no2;
			    // 2003/11/05 T.Sakai コメントアウト 「取扱主任者証番号による検索不可能」エラーを解消
			    // return this.chief_no1 + this.chief_no2;
		    }
	    }

	    public string getChief_no1() {
		    return this.chief_no1;
	    }

	    public string getChief_no2() {
		    return this.chief_no2;
	    }

	    /**
	     * 取扱主任者名 をセットします。
	     *
	     * @param chief_name 取扱主任者名
	     */
	    public void setChief_name(string chief_name) {
		    this.chief_name = chief_name;
	    }

	    /**
	     * 取扱主任者名 を取得します。
	     *
	     * @return string 取扱主任者名
	     */
	    public string getChief_name() {
		    return this.chief_name;
	    }

	    /**
	     * FAX/OCRエラーフラグ をセットします。
	     *
	     * @param fax_error_flg FAX/OCRエラーフラグ
	     */
	    public void setFax_error_flg(string fax_error_flg) {
		    this.fax_error_flg = fax_error_flg;
	    }

	    /**
	     * FAX/OCRエラーフラグ を取得します。
	     *
	     * @return string FAX/OCRエラーフラグ
	     */
	    public string getFax_error_flg() {
		    return this.fax_error_flg;
	    }

	    /**
	     * 重複エラーフラグ をセットします。
	     *
	     * @param dup_error_flg 重複エラーフラグ
	     */
	    public void setDup_error_flg(string dup_error_flg) {
		    this.dup_error_flg = dup_error_flg;
	    }

	    /**
	     * 重複エラーフラグ を取得します。
	     *
	     * @return string 重複エラーフラグ
	     */
	    public string getDup_error_flg() {
		    return this.dup_error_flg;
	    }

	    /**
	     * 報告者不一致エラーフラグ をセットします。
	     *
	     * @param dif_report_flg 報告者不一致エラーフラグ
	     */
	    public void setDif_report_flg(string dif_report_flg) {
		    this.dif_report_flg = dif_report_flg;
	    }

	    /**
	     * 報告者不一致エラーフラグ を取得します。
	     *
	     * @return string 報告者不一致エラーフラグ
	     */
	    public string getDif_report_flg() {
		    return this.dif_report_flg;
	    }

	    /**
	     * ステータス をセットします。
	     *
	     * @param report_sts ステータス
	     */
	    public void setReport_sts(string report_sts) {
		    this.report_sts = report_sts;
	    }

	    /**
	     * ステータス を取得します。
	     *
	     * @return string ステータス
	     */
	    public string getReport_sts() {
		    return this.report_sts;
	    }

	    /**
	     * ホールMから参照した値をセットします。
	     *
	     * @param hall_name ホール名
	     */
	    public void setHall_name(string hall_name) {
		    this.hall_name = hall_name;
	    }

	    public string getHall_name() {
		    return this.hall_name;
	    }

	    /**
	     * 所在地・都道府県をセットします。
	     *
	     * @param hall_pref_code 所在地・都道府県
	     */
	    public void setHall_pref_code(int hall_pref_code) {
		    this.hall_pref_code = hall_pref_code;
	    }

	    /**
	     * 所在地・都道府県を取得します。
	     *
	     * @return int 所在地・都道府県
	     */
	    public int getHall_pref_code() {
		    return this.hall_pref_code;
	    }

	    /**
	     * 所在地・市区町村セットします。
	     *
	     * @param hall_city 所在地・市区町村
	     */
	    public void setHall_city(string hall_city) {
		    this.hall_city = hall_city;
	    }

	    /**
	     * 所在地・郵便番号 を取得します。
	     *
	     * @return string 所在地・郵便番号
	     */
	    public string getHall_city() {
		    return this.hall_city;
	    }

	    /**
	     * 所在地・番地以降をセットします。
	     *
	     * @param hall_address 所在地・番地以降
	     */
	    public void setHall_address(string hall_address) {
		    this.hall_address = hall_address;
	    }

	    /**
	     * 所在地・番地以降 を取得します。
	     *
	     * @return string 所在地・番地以降
	     */
	    public string getHall_address() {
		    return this.hall_address;
	    }

        /**         * 報告№ をセットします。         *         * @param report_no 報告№         */
	    public void setReport_no(string report_no) {
		    this.report_no = report_no;
	    }

        /**         * 報告№ を取得します。         *         * @return String 報告№         */
	    public string getReport_no() {
		    return this.report_no;
	    }

	    /**
	     * 報告区分 をセットします。
	     *
	     * @param report_clss 報告区分
	     */
	    public void setReport_clss(string report_clss) {
		    this.report_clss = report_clss;
	    }

	    /**
	     * 報告区分 を取得します。
	     *
	     * @return string 報告区分
	     */
	    public string getReport_clss() {
		    return this.report_clss;
	    }

	    public void setReport_err(string report_err) {
		    this.report_err = report_err;
	    }

	    public string getReport_err() {
		    return report_err;
	    }

	    public bool isError() {
		    if ("1".Equals(this.fax_error_flg) || "1".Equals(this.dup_error_flg) || "1".Equals(this.dif_report_flg)) {
			    return true;
		    }

		    return false;
	    }

	    /**
	     * ステータス文字列を取得します。
	     *
	     * @return string ステータス
	     */
	    public string getReport_sts_mozi() {
		    return TrnReporth.getReport_sts_mozi(getReport_sts());
	    }

	    /**
	     * 検索結果に否認を含めるかどうかフラグ
	     */
	    public bool getDenialSearchFlag() {
		    return this.denialflag;
	    }

	    public void setDenialSearchFlag(bool flag) {
		    this.denialflag = flag;
	    }

	    //2003/08/07 T.okawa add this method
	    /**
	     * 検索結果表示ページをセットします。
	     * @pram page_num 表示ページ
	     */
	    public void setPage_num(string page_num) {
		    this.page_num = int.Parse(page_num);
	    }

	    //2003/08/07 T.okawa add this method
	    /**
	     * 検索結果表示ページを取得します。
	     * @return int 表示ページ
	     */
	    public int getPage_num() {
		    return this.page_num;
	    }

	    /**
	     * ホール電話番号をセットします。
	     * 2004/07/24 T.okawa 追加
	     * @param hall_tel ホール電話番号
	     */
	    public void setHall_tel(string hall_tel) {
		    this.hall_tel = hall_tel;
	    }

	    /**
	     * ホール電話番号を取得します。
	     * 2004/07/24 T.okawa 追加
	     * @return string ホール電話番号
	     */
	    public string getHall_tel() {
		    return this.hall_tel;
	    }

	    /**
	     * 登録者のユーザークラスをセットします。
	     * 2004/07/24 T.okawa 追加
	     * @param hall_tel ホール電話番号
	     */
	    public void setUser_clss(string user_clss) {
		    this.user_clss = user_clss;
	    }

	    /**
	     * 登録者のユーザクラスを取得します。
	     * 2004/07/26 T.okawa 追加
	     * @return string ホール電話番号
	     */
	    public string getUser_clss() {
		    return this.user_clss;
	    }
        
        /**
         * 設置台数合計 をセットします。
         *
         * @param machine_total_qty 設置台数合計
         */
        public void setMachine_total_qty(int machine_total_qty) {
            this.machine_total_qty = machine_total_qty;
        }

        /**
         * 設置台数合計 を取得します。
         *
         * @return int 設置台数合計
         */
        public int getMachine_total_qty() {
            return this.machine_total_qty;
        }

        public bool isEmpty(string text)
        {
            if (text == null) return true;
            return text.Trim().Length == 0;
        }

        }

       
}
